package com.ruoyi.workflow.service;


import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.workflow.domain.dto.WfCategoryListInput;
import com.ruoyi.workflow.domain.dto.WfCategorySaveInput;
import com.ruoyi.workflow.domain.dto.WfCategoryUpdateInput;
import com.ruoyi.workflow.domain.dto.WfCategoryView;
import org.babyfish.jimmer.Page;

import java.util.Collection;
import java.util.List;

/**
 * 流程分类Service接口
 *
 * @author KonBAI
 * @date 2022-01-15
 */

public interface IWfCategoryService {
    /**
     * 查询单个
     *
     * @return
     */

    WfCategoryView queryById(String categoryId);


    /**
     * 查询列表
     */
    List<WfCategoryView> queryList(WfCategoryListInput category);


    /**
     * 新增流程分类
     *
     * @param category 流程分类信息
     * @return 结果
     */
    int insertCategory(WfCategorySaveInput category);

    /**
     * 编辑流程分类
     *
     * @param category 流程分类信息
     * @return 结果
     */
    int updateCategory(WfCategoryUpdateInput category);


    /**
     * 校验并删除数据
     *
     * @param ids     主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return 结果
     */
    int deleteWithValidByIds(Collection<String> ids, Boolean isValid);


    /**
     * 校验分类编码是否唯一
     *
     * @param code       流程代码
     * @param categoryId 流程分类ID
     * @return 结果
     */

    boolean checkCategoryCodeUnique(String code, String categoryId);

    Page<WfCategoryView> queryPage(WfCategoryListInput category, PageQuery pageQuery);
}
